define("pandora/select/1.0.0/select-debug", [ "$-debug", "pandora/widget/1.0.0/widget-debug", "pandora/base/1.0.0/base-debug", "pandora/class/1.0.0/class-debug", "pandora/events/1.0.0/events-debug", "./select-debug.handlebars", "./select-single-item-debug.handlebars", "./select-multi-item-debug.handlebars" ], function(require, exports, module) {
    "use strict";
    /**
 * Select
 *
 * @module Select
 * @class Select
 * @constructor
 * @extends Widget
 * @examples
 * // 将原生 dom 转换为 select
 * var select = new Select({
 *   filed: '#select'
 * });
 *
 * // 通过 model 定义 select 数据
 * var select = new Select({
 *   field: '#select1',
 *   model: [
 *     {text: 'text1', value:'1'},
 *     {text: 'text2}, value: '2'}
 *   ]
 * });
 */
    var $ = require("$-debug");
    var Widget = require("pandora/widget/1.0.0/widget-debug");
    /**
 * 模拟 select 组件
 *
 * @class Select
 * @constructor
 * @extends Widget
 * @type {*|Object|Function|void}
 */
    var Select = Widget.extend({
        /**
   * Select 默认配置
   *
   * @property {Object} defaults
   * @type {Ojbect}
   */
        defaults: {
            classPrefix: "ue-select",
            // 可多选，为 checkbox 多选
            multiple: false,
            // 分隔符，多选时才有用
            delimiter: ",",
            placeholder: "",
            // input 或 select 元素，必填
            // field: null,
            // label: null,
            css: {
                // width: '200',
                position: "relative"
            },
            model: [],
            // name: null,
            // value: null,
            // minWidth: null,
            // maxWidth: null,
            selectedIndex: 0,
            template: require("./select-debug.handlebars"),
            templateOptions: {
                partials: {
                    singleItem: require("./select-single-item-debug.handlebars"),
                    multiItem: require("./select-multi-item-debug.handlebars")
                }
            },
            insert: function() {
                this.element.insertAfter(this.option("field")).show();
            },
            delegates: {
                click: function(e) {
                    e.stopPropagation();
                },
                "click [data-role=select]": function(e) {
                    this.showDropdown();
                },
                "click [data-role=item]": function(e) {
                    if (e.currentTarget.tagName === "LABEL") {
                        e.stopPropagation();
                        this.check($(e.currentTarget), e.target.tagName === "INPUT");
                    } else {
                        this.select($(e.currentTarget));
                    }
                },
                "mouseenter [data-role=item]": function(e) {
                    $(e.currentTarget).addClass("active");
                },
                "mouseleave [data-role=item]": function(e) {
                    $(e.currentTarget).removeClass("active");
                }
            }
        },
        setup: function() {
            var self = this, field = self.option("field"), optionLoad;
            if (!field) {
                throw new Error("请设置 field");
            }
            field = self.field = $(field).hide();
            // 存储 field 的 tagName
            self.tagName = field[0].tagName.toLowerCase();
            self.data("hasSelected", !!self.option("value") || !!field.val());
            self.data("label", self.option("label") || field.data("label") || self.option("placeholder") || field.attr("placeholder"));
            self.once("render", function() {
                self.element.addClass(self.option("classPrefix") + "-" + (self.option("multiple") ? "multiple" : "single"));
                self.initDelegates({
                    mousedown: function(e) {
                        if (!(self.is(e.target) || self.$(e.target).length)) {
                            self.hideDropdown();
                        }
                    }
                }, self.document);
            });
            optionLoad = self.option("load");
            // 异步请求
            if (optionLoad) {
                optionLoad.call(self, function(data) {
                    self.setDataSelect(data);
                });
            } else {
                self.initAttrs();
                self.setDataSelect(self.option("model"));
            }
        },
        /**
   * 显示之前初始属性值
   *
   * @method initAttrs
   * @return {[type]} [description]
   */
        initAttrs: function() {
            var self = this, selectName, selectElem, field = self.field, tagName = self.tagName, model = self.option("model"), value = self.option("value") || field.val();
            if (tagName === "select") {
                // option 设置 model 优先级高
                if (model && model.length) {
                    self.data("select", completeModel(model, value));
                } else {
                    self.data("select", convertSelect(field[0], value));
                }
            } else {
                if (!model || !model.length) {
                    throw new Error("option model invalid");
                }
                // trigger 如果为其他 DOM，则由用户提供 model
                self.data("select", completeModel(model, value));
                // 如果 name 存在则创建隐藏域
                selectName = self.option("name");
                if (selectName) {
                    selectElem = $('[name="' + selectName + '"]', self.viewport);
                    if (selectElem.length === 0) {
                        selectElem = $('<input type="hidden" name="' + selectName + '" />', self.viewport).css({
                            position: "absolute",
                            zIndex: -1
                        }).insertAfter(field);
                    }
                    self.field = selectElem;
                }
            }
        },
        setDataSelect: function(data) {
            var self = this;
            self.data({
                select: data,
                multiple: self.option("multiple")
            });
            self.render();
        },
        render: function() {
            this.initValue();
            Select.superclass.render.apply(this);
            this.setWidth();
        },
        /**
   * 回填 value
   *
   * @method initValue
   */
        initValue: function() {
            var self = this, datas = self.data("select"), i, l, values = [], newValue, hasSelected = false;
            for (i = 0, l = datas.length; i < l; i++) {
                if (datas[i].selected) {
                    self.text = datas[i].text;
                    values.push(datas[i].value);
                    hasSelected = true;
                }
            }
            newValue = values.join(self.option("delimiter"));
            self.data("hasSelected", hasSelected);
            if (typeof self.value === "undefined") {
                self.value = self.field.val();
            }
            self.field.val(newValue);
            if (self.value !== newValue) {
                self.value = newValue;
                self.fire("change");
            }
        },
        setWidth: function() {
            var self = this, minWidth = self.option("minWidth"), maxWidth = self.option("maxWidth"), calWidth;
            if (!minWidth) {
                minWidth = (self.option("multiple") ? 20 : 0) + getStringWidth(self.role("selected"), self.data("select"));
            }
            // 设置宽度同时保存到data备用
            if (maxWidth) {
                if (minWidth >= maxWidth) {
                    self.role("selected").css("width", maxWidth);
                    self.data("width", maxWidth + "px");
                } else {
                    self.role("selected").css("min-width", minWidth).css("max-width", maxWidth);
                    self.data("minWidth", minWidth + "px");
                    self.data("maxWidth", maxWidth + "px");
                }
            } else {
                self.role("selected").css("min-width", minWidth);
                self.data("minWidth", minWidth + "px");
            }
        },
        /**
   * 显示 select
   *
   * @method show
   */
        showDropdown: function() {
            var self = this, roleSelect = self.role("select");
            roleSelect.addClass("focus input-active dropdown-active");
            if (!self.option("multiple")) {
                self.role("selected").addClass("is-label").text(self.data("label") || undefined);
            }
            self.role("dropdown").css({
                width: roleSelect.outerWidth(),
                left: 0,
                top: roleSelect.outerHeight(),
                visibility: "visible"
            }).show();
        },
        /**
   * 隐藏 select
   *
   * @method hide
   */
        hideDropdown: function() {
            var self = this;
            if (self.role("dropdown").is(":hidden")) {
                return;
            }
            self.role("select").removeClass("focus input-active dropdown-active");
            if (!self.option("multiple")) {
                self.role("selected").removeClass("is-label").text(self.text || undefined);
            }
            self.role("dropdown").hide();
        },
        /**
   * 单选
   *
   * @method select
   * @param item
   */
        select: function(item) {
            var self = this, datas = self.data("select"), index = +item.data("index"), i, l;
            if (datas[index].selected) {
                self.hideDropdown();
                return;
            }
            if (datas[index].disabled) {
                return;
            }
            self.text = datas[index].text;
            for (i = 0, l = datas.length; i < l; i++) {
                datas[i].selected = i === index;
            }
            self.render();
        },
        /**
   * 多选
   *
   * @method check
   */
        check: function(item, isInput) {
            var self = this, datas = self.data("select"), index = +item.data("index"), checked;
            if (datas[index].disabled) {
                return;
            }
            checked = item.find("input").is(":checked");
            datas[index].selected = isInput ? checked : !checked;
            self.render();
            self.showDropdown();
        }
    });
    module.exports = Select;
    function convertSelect(select, value) {
        var i, j, o, option, fields, field, model = [], options = select.options, l = options.length, selected, selectedFound = false;
        for (i = 0; i < l; i++) {
            option = options[i];
            if (!selectedFound) {
                if (value !== null) {
                    selected = value === option.value;
                } else {
                    selected = option.defaultSelected && option.selected;
                }
            }
            o = {
                text: option.text,
                value: option.value,
                selected: !selectedFound && selected,
                disabled: option.disabled
            };
            model.push(o);
            if (selected) {
                selectedFound = true;
            }
        }
        // 当所有都没有设置 selected，默认设置第一个
        if (!selectedFound && model.length) {
            model[0].selected = true;
        }
        return model;
    }
    // 补全 model 对象
    function completeModel(model, value) {
        var i, l, selected, selectedFound = false;
        for (i = 0, l = model.length; i < l; i++) {
            if (value !== null) {
                model[i].selected = value === model[i].value;
            }
            if (model[i].selected) {
                selectedFound = true;
            }
        }
        if (!selectedFound && model.length) {
            model[0].selected = true;
        }
        return model;
    }
    function getStringWidth(sibling, data) {
        var i, l, m = 0, n, text, value, dummy, width;
        for (i = 0, l = data.length; i < l; i++) {
            text = data[i].text;
            n = text.replace(/[^\x00-\xff]/g, "xx").length;
            if (n > m) {
                m = n;
                value = text;
            }
        }
        dummy = $("<div/>").css({
            position: "absolute",
            left: -9999,
            top: -9999,
            width: "auto",
            whiteSpace: "nowrap"
        }).html(value.replace(/ /g, "&nbsp;")).insertAfter(sibling), width = dummy.width();
        dummy.remove();
        return width;
    }
});

define("pandora/select/1.0.0/select-debug.handlebars", [ "gallery/handlebars/1.3.0/handlebars-runtime-debug" ], function(require, exports, module) {
    var Handlebars = require("gallery/handlebars/1.3.0/handlebars-runtime-debug");
    var template = Handlebars.template;
    module.exports = template(function(Handlebars, depth0, helpers, partials, data) {
        this.compilerInfo = [ 4, ">= 1.0.0" ];
        helpers = helpers || {};
        for (var key in Handlebars.helpers) {
            helpers[key] = helpers[key] || Handlebars.helpers[key];
        }
        partials = partials || Handlebars.partials;
        data = data || {};
        var buffer = "", stack1, helper, functionType = "function", escapeExpression = this.escapeExpression, self = this;
        function program1(depth0, data) {
            return "has-items";
        }
        function program3(depth0, data) {
            return "is-label";
        }
        function program5(depth0, data) {
            var buffer = "", stack1;
            buffer += "\r\n      ";
            stack1 = helpers["if"].call(depth0, depth0 && depth0.multiple, {
                hash: {},
                inverse: self.program(10, program10, data),
                fn: self.program(6, program6, data),
                data: data
            });
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n    ";
            return buffer;
        }
        function program6(depth0, data) {
            var buffer = "", stack1;
            buffer += "\r\n        ";
            stack1 = helpers.each.call(depth0, depth0 && depth0.select, {
                hash: {},
                inverse: self.noop,
                fn: self.program(7, program7, data),
                data: data
            });
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n      ";
            return buffer;
        }
        function program7(depth0, data) {
            var buffer = "", stack1;
            buffer += "\r\n          ";
            stack1 = helpers["if"].call(depth0, depth0 && depth0.selected, {
                hash: {},
                inverse: self.noop,
                fn: self.program(8, program8, data),
                data: data
            });
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n        ";
            return buffer;
        }
        function program8(depth0, data) {
            var buffer = "", stack1, helper;
            buffer += '\r\n            <div class="item" data-value="';
            if (helper = helpers.value) {
                stack1 = helper.call(depth0, {
                    hash: {},
                    data: data
                });
            } else {
                helper = depth0 && depth0.value;
                stack1 = typeof helper === functionType ? helper.call(depth0, {
                    hash: {},
                    data: data
                }) : helper;
            }
            buffer += escapeExpression(stack1) + '">';
            if (helper = helpers.text) {
                stack1 = helper.call(depth0, {
                    hash: {},
                    data: data
                });
            } else {
                helper = depth0 && depth0.text;
                stack1 = typeof helper === functionType ? helper.call(depth0, {
                    hash: {},
                    data: data
                }) : helper;
            }
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "</div>\r\n          ";
            return buffer;
        }
        function program10(depth0, data) {
            var buffer = "", stack1;
            buffer += "\r\n        ";
            stack1 = helpers.each.call(depth0, depth0 && depth0.select, {
                hash: {},
                inverse: self.noop,
                fn: self.program(11, program11, data),
                data: data
            });
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n      ";
            return buffer;
        }
        function program11(depth0, data) {
            var buffer = "", stack1;
            buffer += "\r\n          ";
            stack1 = helpers["if"].call(depth0, depth0 && depth0.selected, {
                hash: {},
                inverse: self.noop,
                fn: self.program(12, program12, data),
                data: data
            });
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n        ";
            return buffer;
        }
        function program12(depth0, data) {
            var buffer = "", stack1, helper;
            buffer += "\r\n            ";
            if (helper = helpers.text) {
                stack1 = helper.call(depth0, {
                    hash: {},
                    data: data
                });
            } else {
                helper = depth0 && depth0.text;
                stack1 = typeof helper === functionType ? helper.call(depth0, {
                    hash: {},
                    data: data
                }) : helper;
            }
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n          ";
            return buffer;
        }
        function program14(depth0, data) {
            var buffer = "", stack1, helper;
            buffer += "\r\n      ";
            if (helper = helpers.label) {
                stack1 = helper.call(depth0, {
                    hash: {},
                    data: data
                });
            } else {
                helper = depth0 && depth0.label;
                stack1 = typeof helper === functionType ? helper.call(depth0, {
                    hash: {},
                    data: data
                }) : helper;
            }
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n    ";
            return buffer;
        }
        function program16(depth0, data) {
            var buffer = "", stack1;
            buffer += "\r\n      ";
            stack1 = helpers.each.call(depth0, depth0 && depth0.select, {
                hash: {},
                inverse: self.noop,
                fn: self.program(17, program17, data),
                data: data
            });
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n    ";
            return buffer;
        }
        function program17(depth0, data) {
            var buffer = "", stack1;
            buffer += "\r\n        ";
            stack1 = self.invokePartial(partials.multiItem, "multiItem", depth0, helpers, partials, data);
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n      ";
            return buffer;
        }
        function program19(depth0, data) {
            var buffer = "", stack1;
            buffer += "\r\n      ";
            stack1 = helpers.each.call(depth0, depth0 && depth0.select, {
                hash: {},
                inverse: self.noop,
                fn: self.program(20, program20, data),
                data: data
            });
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n    ";
            return buffer;
        }
        function program20(depth0, data) {
            var buffer = "", stack1;
            buffer += "\r\n        ";
            stack1 = self.invokePartial(partials.singleItem, "singleItem", depth0, helpers, partials, data);
            if (stack1 || stack1 === 0) {
                buffer += stack1;
            }
            buffer += "\r\n      ";
            return buffer;
        }
        buffer += '<div class="input ';
        stack1 = helpers["if"].call(depth0, depth0 && depth0.hasSelected, {
            hash: {},
            inverse: self.program(3, program3, data),
            fn: self.program(1, program1, data),
            data: data
        });
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += '" data-role="select">\r\n  <span data-role="selected" style="min-width:';
        if (helper = helpers.minWidth) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.minWidth;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        buffer += escapeExpression(stack1) + ";max-width:";
        if (helper = helpers.maxWidth) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.maxWidth;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        buffer += escapeExpression(stack1) + ";width:";
        if (helper = helpers.width) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.width;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        buffer += escapeExpression(stack1) + '">\r\n    ';
        stack1 = helpers["if"].call(depth0, depth0 && depth0.hasSelected, {
            hash: {},
            inverse: self.program(14, program14, data),
            fn: self.program(5, program5, data),
            data: data
        });
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += '\r\n  </span>\r\n</div>\r\n<div class="dropdown" data-role="dropdown" style="display:none">\r\n  <div class="dropdown-content">\r\n    ';
        stack1 = helpers["if"].call(depth0, depth0 && depth0.multiple, {
            hash: {},
            inverse: self.program(19, program19, data),
            fn: self.program(16, program16, data),
            data: data
        });
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += "\r\n  </div>\r\n</div>\r\n";
        return buffer;
    });
});

define("pandora/select/1.0.0/select-single-item-debug.handlebars", [ "gallery/handlebars/1.3.0/handlebars-runtime-debug" ], function(require, exports, module) {
    var Handlebars = require("gallery/handlebars/1.3.0/handlebars-runtime-debug");
    var template = Handlebars.template;
    module.exports = template(function(Handlebars, depth0, helpers, partials, data) {
        this.compilerInfo = [ 4, ">= 1.0.0" ];
        helpers = helpers || {};
        for (var key in Handlebars.helpers) {
            helpers[key] = helpers[key] || Handlebars.helpers[key];
        }
        data = data || {};
        var buffer = "", stack1, helper, functionType = "function", escapeExpression = this.escapeExpression, self = this;
        function program1(depth0, data) {
            return " selected";
        }
        function program3(depth0, data) {
            return " disabled";
        }
        buffer += '<div title="';
        if (helper = helpers.text) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.text;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        buffer += escapeExpression(stack1) + '" class="item';
        stack1 = helpers["if"].call(depth0, depth0 && depth0.selected, {
            hash: {},
            inverse: self.noop,
            fn: self.program(1, program1, data),
            data: data
        });
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        stack1 = helpers["if"].call(depth0, depth0 && depth0.disabled, {
            hash: {},
            inverse: self.noop,
            fn: self.program(3, program3, data),
            data: data
        });
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += '" data-index="' + escapeExpression((stack1 = data == null || data === false ? data : data.index, 
        typeof stack1 === functionType ? stack1.apply(depth0) : stack1)) + '" data-role="item" data-value="';
        if (helper = helpers.value) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.value;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += '">';
        if (helper = helpers.text) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.text;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += "</div>\r\n";
        return buffer;
    });
});

define("pandora/select/1.0.0/select-multi-item-debug.handlebars", [ "gallery/handlebars/1.3.0/handlebars-runtime-debug" ], function(require, exports, module) {
    var Handlebars = require("gallery/handlebars/1.3.0/handlebars-runtime-debug");
    var template = Handlebars.template;
    module.exports = template(function(Handlebars, depth0, helpers, partials, data) {
        this.compilerInfo = [ 4, ">= 1.0.0" ];
        helpers = helpers || {};
        for (var key in Handlebars.helpers) {
            helpers[key] = helpers[key] || Handlebars.helpers[key];
        }
        data = data || {};
        var buffer = "", stack1, helper, functionType = "function", escapeExpression = this.escapeExpression, self = this;
        function program1(depth0, data) {
            return " selected";
        }
        function program3(depth0, data) {
            return " disabled";
        }
        function program5(depth0, data) {
            return " checked";
        }
        buffer += '<label title="';
        if (helper = helpers.text) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.text;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        buffer += escapeExpression(stack1) + '" class="item';
        stack1 = helpers["if"].call(depth0, depth0 && depth0.selected, {
            hash: {},
            inverse: self.noop,
            fn: self.program(1, program1, data),
            data: data
        });
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        stack1 = helpers["if"].call(depth0, depth0 && depth0.disabled, {
            hash: {},
            inverse: self.noop,
            fn: self.program(3, program3, data),
            data: data
        });
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += '" data-index="' + escapeExpression((stack1 = data == null || data === false ? data : data.index, 
        typeof stack1 === functionType ? stack1.apply(depth0) : stack1)) + '" data-role="item" data-value="';
        if (helper = helpers.value) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.value;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += '">\r\n  <input type="checkbox" data-text="';
        if (helper = helpers.text) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.text;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += '" value="';
        if (helper = helpers.value) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.value;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += '"';
        stack1 = helpers["if"].call(depth0, depth0 && depth0.selected, {
            hash: {},
            inverse: self.noop,
            fn: self.program(5, program5, data),
            data: data
        });
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        stack1 = helpers["if"].call(depth0, depth0 && depth0.disabled, {
            hash: {},
            inverse: self.noop,
            fn: self.program(3, program3, data),
            data: data
        });
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += ">\r\n  <span>";
        if (helper = helpers.text) {
            stack1 = helper.call(depth0, {
                hash: {},
                data: data
            });
        } else {
            helper = depth0 && depth0.text;
            stack1 = typeof helper === functionType ? helper.call(depth0, {
                hash: {},
                data: data
            }) : helper;
        }
        if (stack1 || stack1 === 0) {
            buffer += stack1;
        }
        buffer += "</span>\r\n</label>\r\n";
        return buffer;
    });
});
